iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 14
0
自我挑戰組

Leetcode新手挑戰30天系列 第 14

#141 Linked List Cycle - 繼續研究其他解法

  • 分享至 

  • xImage
  •  

前情提要

昨天卡在不曉得為什麼pos正數最後面和倒數1記憶體指向的位置不一樣,
用了關鍵字"linked list 記憶體"、"Python 列表 記憶體"等字眼搜尋,仍沒找到相關解釋或介紹...
但今天仍會研究關於這題的其他解法

進入正題

同樣昨天的參考1連結,還有提供其他的解決方法:

def hasCycle(self, head):
    slow = fast = head
    while fast and fast.next:
        slow = slow.next
        fast = fast.next.next
        if slow == fast:
            return True
    return False

在連結中他也有說明,這個解法的意思就是,如果head是一個環的話,slow和fast兩個指針到最後一定會相等
是否繼續判斷的標準是用比較快的fast和fast.next是否有東西作為標準,程式碼變得比較簡短
https://ithelp.ithome.com.tw/upload/images/20190916/20113393CyDe6OJ6Kk.png
但在這樣的方式做pos="3"和pos="-1"的結果也是一樣的,
https://ithelp.ithome.com.tw/upload/images/20190916/20113393snNVxC9GPM.png
感覺python裡面位置-1和位置3是存不同的記憶體位置的??
https://ithelp.ithome.com.tw/upload/images/20190916/20113393Uv5QNkq6dm.png

參考資料

參考1141. Linked List Cycle [easy] (Python)


上一篇
#141 Linked List Cycle
下一篇
Day 15 鐵人賽過了一半,想來聊聊解Leetcode題目這件事
系列文
Leetcode新手挑戰30天31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言